home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2007 September / PCWSEP07.iso / Software / Linux / Linux Mint 3.0 Light / LinuxMint-3.0-Light.iso / casper / filesystem.squashfs / usr / lib / perl / 5.8.8 / Socket.pm < prev    next >
Encoding:
Perl POD Document  |  2007-03-05  |  3.4 KB  |  230 lines

  1. package Socket;
  2.  
  3. our($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
  4. $VERSION = "1.78";
  5.  
  6. use Carp;
  7. use warnings::register;
  8.  
  9. require Exporter;
  10. use XSLoader ();
  11. @ISA = qw(Exporter);
  12. @EXPORT = qw(
  13.     inet_aton inet_ntoa
  14.     sockaddr_family
  15.     pack_sockaddr_in unpack_sockaddr_in
  16.     pack_sockaddr_un unpack_sockaddr_un
  17.     sockaddr_in sockaddr_un
  18.     INADDR_ANY INADDR_BROADCAST INADDR_LOOPBACK INADDR_NONE
  19.     AF_802
  20.     AF_AAL
  21.     AF_APPLETALK
  22.     AF_CCITT
  23.     AF_CHAOS
  24.     AF_CTF
  25.     AF_DATAKIT
  26.     AF_DECnet
  27.     AF_DLI
  28.     AF_ECMA
  29.     AF_GOSIP
  30.     AF_HYLINK
  31.     AF_IMPLINK
  32.     AF_INET
  33.     AF_INET6
  34.     AF_ISO
  35.     AF_KEY
  36.     AF_LAST
  37.     AF_LAT
  38.     AF_LINK
  39.     AF_MAX
  40.     AF_NBS
  41.     AF_NIT
  42.     AF_NS
  43.     AF_OSI
  44.     AF_OSINET
  45.     AF_PUP
  46.     AF_ROUTE
  47.     AF_SNA
  48.     AF_UNIX
  49.     AF_UNSPEC
  50.     AF_USER
  51.     AF_WAN
  52.     AF_X25
  53.     IOV_MAX
  54.     MSG_BCAST
  55.     MSG_BTAG
  56.     MSG_CTLFLAGS
  57.     MSG_CTLIGNORE
  58.     MSG_CTRUNC
  59.     MSG_DONTROUTE
  60.     MSG_DONTWAIT
  61.     MSG_EOF
  62.     MSG_EOR
  63.     MSG_ERRQUEUE
  64.     MSG_ETAG
  65.     MSG_FIN
  66.     MSG_MAXIOVLEN
  67.     MSG_MCAST
  68.     MSG_NOSIGNAL
  69.     MSG_OOB
  70.     MSG_PEEK
  71.     MSG_PROXY
  72.     MSG_RST
  73.     MSG_SYN
  74.     MSG_TRUNC
  75.     MSG_URG
  76.     MSG_WAITALL
  77.     MSG_WIRE
  78.     PF_802
  79.     PF_AAL
  80.     PF_APPLETALK
  81.     PF_CCITT
  82.     PF_CHAOS
  83.     PF_CTF
  84.     PF_DATAKIT
  85.     PF_DECnet
  86.     PF_DLI
  87.     PF_ECMA
  88.     PF_GOSIP
  89.     PF_HYLINK
  90.     PF_IMPLINK
  91.     PF_INET
  92.     PF_INET6
  93.     PF_ISO
  94.     PF_KEY
  95.     PF_LAST
  96.     PF_LAT
  97.     PF_LINK
  98.     PF_MAX
  99.     PF_NBS
  100.     PF_NIT
  101.     PF_NS
  102.     PF_OSI
  103.     PF_OSINET
  104.     PF_PUP
  105.     PF_ROUTE
  106.     PF_SNA
  107.     PF_UNIX
  108.     PF_UNSPEC
  109.     PF_USER
  110.     PF_WAN
  111.     PF_X25
  112.     SCM_CONNECT
  113.     SCM_CREDENTIALS
  114.     SCM_CREDS
  115.     SCM_RIGHTS
  116.     SCM_TIMESTAMP
  117.     SHUT_RD
  118.     SHUT_RDWR
  119.     SHUT_WR
  120.     SOCK_DGRAM
  121.     SOCK_RAW
  122.     SOCK_RDM
  123.     SOCK_SEQPACKET
  124.     SOCK_STREAM
  125.     SOL_SOCKET
  126.     SOMAXCONN
  127.     SO_ACCEPTCONN
  128.     SO_ATTACH_FILTER
  129.     SO_BACKLOG
  130.     SO_BROADCAST
  131.     SO_CHAMELEON
  132.     SO_DEBUG
  133.     SO_DETACH_FILTER
  134.     SO_DGRAM_ERRIND
  135.     SO_DONTLINGER
  136.     SO_DONTROUTE
  137.     SO_ERROR
  138.     SO_FAMILY
  139.     SO_KEEPALIVE
  140.     SO_LINGER
  141.     SO_OOBINLINE
  142.     SO_PASSCRED
  143.     SO_PASSIFNAME
  144.     SO_PEERCRED
  145.     SO_PROTOCOL
  146.     SO_PROTOTYPE
  147.     SO_RCVBUF
  148.     SO_RCVLOWAT
  149.     SO_RCVTIMEO
  150.     SO_REUSEADDR
  151.     SO_REUSEPORT
  152.     SO_SECURITY_AUTHENTICATION
  153.     SO_SECURITY_ENCRYPTION_NETWORK
  154.     SO_SECURITY_ENCRYPTION_TRANSPORT
  155.     SO_SNDBUF
  156.     SO_SNDLOWAT
  157.     SO_SNDTIMEO
  158.     SO_STATE
  159.     SO_TYPE
  160.     SO_USELOOPBACK
  161.     SO_XOPEN
  162.     SO_XSE
  163.     UIO_MAXIOV
  164. );
  165.  
  166. @EXPORT_OK = qw(CR LF CRLF $CR $LF $CRLF
  167.  
  168.            IPPROTO_TCP
  169.            TCP_KEEPALIVE
  170.            TCP_MAXRT
  171.            TCP_MAXSEG
  172.            TCP_NODELAY
  173.            TCP_STDURG);
  174.  
  175. %EXPORT_TAGS = (
  176.     crlf    => [qw(CR LF CRLF $CR $LF $CRLF)],
  177.     all     => [@EXPORT, @EXPORT_OK],
  178. );
  179.  
  180. BEGIN {
  181.     sub CR   () {"\015"}
  182.     sub LF   () {"\012"}
  183.     sub CRLF () {"\015\012"}
  184. }
  185.  
  186. *CR   = \CR();
  187. *LF   = \LF();
  188. *CRLF = \CRLF();
  189.  
  190. sub sockaddr_in {
  191.     if (@_ == 6 && !wantarray) { # perl5.001m compat; use this && die
  192.     my($af, $port, @quad) = @_;
  193.     warnings::warn "6-ARG sockaddr_in call is deprecated" 
  194.         if warnings::enabled();
  195.     pack_sockaddr_in($port, inet_aton(join('.', @quad)));
  196.     } elsif (wantarray) {
  197.     croak "usage:   (port,iaddr) = sockaddr_in(sin_sv)" unless @_ == 1;
  198.         unpack_sockaddr_in(@_);
  199.     } else {
  200.     croak "usage:   sin_sv = sockaddr_in(port,iaddr))" unless @_ == 2;
  201.         pack_sockaddr_in(@_);
  202.     }
  203. }
  204.  
  205. sub sockaddr_un {
  206.     if (wantarray) {
  207.     croak "usage:   (filename) = sockaddr_un(sun_sv)" unless @_ == 1;
  208.         unpack_sockaddr_un(@_);
  209.     } else {
  210.     croak "usage:   sun_sv = sockaddr_un(filename)" unless @_ == 1;
  211.         pack_sockaddr_un(@_);
  212.     }
  213. }
  214.  
  215. sub AUTOLOAD {
  216.     my($constname);
  217.     ($constname = $AUTOLOAD) =~ s/.*:://;
  218.     croak "&Socket::constant not defined" if $constname eq 'constant';
  219.     my ($error, $val) = constant($constname);
  220.     if ($error) {
  221.     croak $error;
  222.     }
  223.     *$AUTOLOAD = sub { $val };
  224.     goto &$AUTOLOAD;
  225. }
  226.  
  227. XSLoader::load 'Socket', $VERSION;
  228.  
  229. 1;
  230.